﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas
{
    public partial class relatorioFinanceiroGeral : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                string sqlAluno = "select * from aluno order by nomeAluno";

                SqlCommand cmdAluno = new SqlCommand(sqlAluno, sqlc);
                SqlDataReader myReaderAluno = cmdAluno.ExecuteReader();

                ListItem AlunoSelecione = new ListItem();
                AlunoSelecione.Value = "0";
                AlunoSelecione.Text = "Selecione um Aluno";

                lstAluno.Items.Add(AlunoSelecione);

                if (myReaderAluno.HasRows)
                {

                    while (myReaderAluno.Read())
                    {
                        ListItem Aluno = new ListItem();

                        Aluno.Value = myReaderAluno["codigoAluno"].ToString();
                        Aluno.Text = myReaderAluno["nomeAluno"].ToString();

                        lstAluno.Items.Add(Aluno);
                    }

                }
                //Aluno carregados
                myReaderAluno.Close();
                cmdAluno.Dispose();

                string sqlGrupo = "select * from grupo";

                SqlCommand cmdGrupo = new SqlCommand(sqlGrupo, sqlc);
                SqlDataReader myReaderGrupo = cmdGrupo.ExecuteReader();

                ListItem GrupoSelecione = new ListItem();
                GrupoSelecione.Value = "0";
                GrupoSelecione.Text = "Selecione um grupo";

                lstGrupo.Items.Add(GrupoSelecione);

                if (myReaderGrupo.HasRows)
                {

                    while (myReaderGrupo.Read())
                    {
                        ListItem Grupo = new ListItem();

                        Grupo.Value = myReaderGrupo["codigoGrupo"].ToString();
                        Grupo.Text = myReaderGrupo["nomeGrupo"].ToString();

                        lstGrupo.Items.Add(Grupo);
                    }

                }
                //Grupo carregados

                myReaderGrupo.Close();
                cmdGrupo.Dispose();

                string sqlProfessor = "select * from professor";

                SqlCommand cmdProfessor = new SqlCommand(sqlProfessor, sqlc);
                SqlDataReader myReaderProfessor = cmdProfessor.ExecuteReader();

                ListItem ProfessorSelecione = new ListItem();
                ProfessorSelecione.Value = "0";
                ProfessorSelecione.Text = "Selecione um Professor";

                lstProfessor.Items.Add(ProfessorSelecione);

                if (myReaderProfessor.HasRows)
                {

                    while (myReaderProfessor.Read())
                    {
                        ListItem Professor = new ListItem();

                        Professor.Value = myReaderProfessor["codigoProfessor"].ToString();
                        Professor.Text = myReaderProfessor["nomeProfessor"].ToString();

                        lstProfessor.Items.Add(Professor);
                    }

                }
                //Professor carregados
                myReaderProfessor.Close();
                cmdProfessor.Dispose();


                // fechando conexão com o banco de dados
                sqlc.Close();

                TxtDataInicial.Focus();
            }

        }

        void relatorio()
        {
            string dataInicial = TxtDataInicial.Text;
            string dataFinal = TxtDataFinal.Text;


            TimeSpan dif = Convert.ToDateTime(dataFinal).Subtract(Convert.ToDateTime(dataInicial));



            if (dif.Days >= 0)
            {

                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                string selectGeral = "";

                if (lstAluno.SelectedValue == "0")
                {

                    selectGeral = " SELECT a.codigoAluno, a.codigoGrupo, ";

                    selectGeral += " a.valorTotal as valorTotal, a.valorPago as valorPago, al.codigoAluno, al.nomeAluno as nomeAluno, al.nomeAluno as nomeAluno, p.codigoProfessor, p.nomeProfessor as nomeProfessor ";
                    selectGeral += " Pp porcentagemProfessor ";
                    selectGeral += " FROM aula a , aluno al, professor p, porcentagemProfessor Pp ";

                    selectGeral += " WHERE ";
                    selectGeral += " a.codigoAluno = al.codigoAluno and ";
                    selectGeral += " p.codigoProfessor = p.codigoProfessor and ";
                    selectGeral += " Pp.porcentagemProfessor = Pp.porcentagemProfessor and ";
                    selectGeral += " convert(datetime,dataAula,103) ";
                    selectGeral += " BETWEEN convert(datetime,'" + dataInicial + "',103) AND convert(datetime,'" + dataFinal + "',103) order by p.nomeProfessor ";

                    

                }
                else
                {

                    selectGeral = " SELECT a.codigoAluno, a.codigoGrupo, ";
                    selectGeral += " a.valorTotal as valorTotal, a.valorPago as valorPago, al.codigoAluno, al.nomeAluno as nomeAluno, p.codigoProfessor, p.nomeProfessor, ";
                    selectGeral += " Pp.codigoPorcentagem, Pp.valorPorcentagem ";

                    selectGeral += " FROM aula a , aluno al , professor p , porcentagemProfessor Pp ";

                    selectGeral += " WHERE ";
                    selectGeral += " a.codigoAluno = al.codigoAluno and ";

                    selectGeral += " p.codigoProfessor = p.codigoProfessor and ";

                    selectGeral += " a.codigoAluno = " + lstAluno.SelectedValue + " and  ";

                    selectGeral += " p.codigoProfessor = " + lstProfessor.SelectedValue + " and  ";

                    selectGeral += " convert(datetime,dataAula,103) ";

                    selectGeral += " BETWEEN convert(datetime,'" + dataInicial + "',103) AND convert(datetime,'" + dataFinal + "',103) order by p.nomeProfessor ";
                    
                    

                }

                SqlCommand cmdGeral = new SqlCommand(selectGeral, sqlc);
                SqlDataReader drGeral = cmdGeral.ExecuteReader();

                //essa string abaixo receberá o código html da tabela
                string tabela = "<table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#99CCFF\">";
                tabela += "<tr align=\"center\">";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px;\">";
                tabela += "Professor";
                tabela += "</td>";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "Aluno</td>";
                tabela += "</td>";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "Individual ou grupo</td>";                
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "% Professor</td>";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "Valor total</td>";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "Valor pago</td>";
                tabela += "<td align=\"center\" style=\"font-family:Verdana;font-size:12px\">";
                tabela += "Status</td>";
                tabela += "</tr>";

                string codigoAluno = "";
                string codigoProfessor = "";
                string nomeAluno = "";
                string nomeProfessor = "";
                string individualGrupo = "";

                //string porcentagemSala = "";
                string porcentagemProfessor = "";
                string valorTotal = "";
                string valorPago = "";
                //string Status = "";

                if (drGeral.HasRows)
                {
                    int cont = 1;


                    while (drGeral.Read())
                    {
                        codigoAluno = drGeral["codigoAluno"].ToString();
                        codigoProfessor = drGeral["codigoProfessor"].ToString();
                        nomeAluno = drGeral["nomeAluno"].ToString();
                        nomeProfessor = drGeral["nomeProfessor"].ToString();

                        string selectAula = "";


                        individualGrupo = drGeral["codigoGrupo"].ToString();
                        //porcentagemSala = drGeral["horaFinalAula"].ToString();
                        porcentagemProfessor = drGeral["valorPorcentagem"].ToString();
                        valorTotal = drGeral["valorTotal"].ToString();
                        valorPago = drGeral["valorPago"].ToString();

                        //AQUI CONTEUDO DO RELATÓRIO//

                        tabela += "<tr>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + nomeAluno + "</td>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + nomeProfessor + "</td>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + individualGrupo + "</td>";
                        //tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + porcentagemSala + "</td>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + porcentagemProfessor + "</td>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + valorTotal + "</td>";
                        tabela += "<td align=\"center\" style=\"font-family:Verdana; font-size:9px\">" + valorPago + "</td>";


                        if (valorPago == "")
                        {
                            tabela += "<td style=\"background-color:#FF0000\"></td>"; //Vermelho

                        }
                        else if (Convert.ToInt32(valorPago) < Convert.ToInt32(valorTotal))
                        {
                            tabela += "<td style=\"background-color:#FFFF00\"></td>"; // Amarelo 
                        }
                        else
                        {
                            tabela += "<td style=\"background-color:#00FF00\"></td>"; // verde
                        }


                    }
                }

                drGeral.Close();
                cmdGeral.Dispose();

                tabela += "</table>";
                Panel1.Controls.Add(new LiteralControl(tabela));

                sqlc.Close(); 

            }

            else
            {
                string literalcc = "<Script language=\"javascript\">function erro() {alert('A data final deve ser maior que a data inicial');}</script><script language=JavaScript>erro();</script>";
                Panel1.Controls.Add(new LiteralControl(literalcc));
            }
        }

        protected void btnGerar_Click(object sender, EventArgs e)
        {
            relatorio();
        }
    }
}
